Hiccup: How can I render a quotation mark in Reagent? - clojure

I am trying to render quotes around text with Hiccup.
[:p "I want double quotes around this string"]
I tried &qout; to no avail.

Try escaping the quotes:
[:p "\"I want quotes around this string\""]

Related

JSON breaking: using coldfusion regex to remove some quotes and double quotes

i am going nuts here, trying to remove some quotes and double quotes in my json response,
there are some characters too like period, comma etc, i am trying like this
<cfset mystring = rereplace(mystring, '(['""])', '\\\1', 'all') />
but unable to fix it, please guide me thanks
I think the problem is that you're enclosing your regex pattern string in single quotes, but then escaping the double quote inside that string, but not the single quote. You might try the following:
<cfset mystring = rereplace(mystring, "(['""])", "\\\1", "all") />
But I'm not sure that will actually do what you want. That will also escape double and single quotes where they don't need to be escaped -- such as the quotes surrounding names and values. For example, the JSON
[{"name":"value"}]
would become
[{\"name\":\"value\"}]
Surely that isn't what you want! Rather, you would need to determine where double quotes fall within strings surrounded by double quotes, and escape those (assuming they're not already escaped). I am not certain that ColdFusion regex, or any regex flavor, is up to that task. Rather, whatever service is producing the invalid JSON needs to be fixed.

Remove more than one comma in between quotes in CSV file using Regex

all! Have CSV files coming in with with text inside double quotes that contain one or more commas and I am wondering if there is a regex form for Notepad++ that would remove any number of commas inside a CSV file.
For example I need to go from the this:
text,text1,"interesting, text,"
To this:
text,text1,"interesting text"
There can be 1,2 or more commas inside the quotes.
Anyone know a of a way to make this happen using regex form in Notepad++?
Thanks in advance!
use this pattern
,(?!(([^"]*"){2})*[^"]*$)
and replace with nothing
it is looking for a comma , that does not see an optional even number of double quotes " to the end of the string

Change `"` quotation marks to latex style

I'm editing a book in LaTeX and its quotation marks syntax is different from the simple " characters. So I want to convert "quoted text here" to ``quoted text here''.
I have 50 text files with lots of quotations inside. I tried to write a regular expression to substitute the first " with `` and the second " with '', but I failed. I searched on internet and asked some friends, but I had no success at all. The closest thing I got to replace the first quotation mark is
s/"[a-z]/``/g
but this is clearly wrong, since
"quoted text here"
will become
``uoted text here"
How can I solve my problem?
I'm a little confused by your approach. Shouldn't it be the other way round with s/``/"[a-z]/g? But then, I think it'll be better with:
s/``(.*?)''/"\1"/g
(.*?) captures what's between `` and ''.
\1 contains this capture.
If it's the opposite that you're looking for (i.e. I wrongly interpreted your question), then I would suggest this:
s/"(.*?)"/``\1''/g
Which works on the same principles as the previous regex.
Use the following to tackle multiple quotations, replacing all " in one step.
echo '"Quote" she said, "again."' | sed "s/\"\([^\"]*\)\"/\`\`\1''/g"
The [^\"]* avoids the need for ungreedy matching, which does not seem possible in sed.
If you are using the TeXmaker software, you could use a regular expression with the Replace command (CTRL+R), and put the following into the Find field:
"([^}]*)"
and into the Replace field:
``$1''
And then just press the Replace All button. But after that, you still have to check that everything is fine, and maybe you need to do some corrections. This has worked pretty well for me.
Try grouping the word:
sed 's/"\([a-z]\)/``\1/'
On my PC:
abhishekm71#PC:~$ echo \"hello\" | sed 's/"\([a-z]\)/``\1/'
``hello"
It depends a little on your input file (are quotes always paired, or can there be ommissions?). I suggest the following robust approach:
sed 's/"\([0-9a-zA-Z]\)/``\1/g'
sed "s/\([0-9a-zA-Z]\)\"/\1\'\'/g"
Assumption: An opening quotation mark is always immediately followed by a letter or digit, a closing quotation mark is preceeded by one. Quotations can span over several words an even several input lines (some of the other solutions don't work when this happens).
Note that I also replace the closing quotation mark: Depending on the fonts you use the double quotation mark can be typeset as neutral straight quotation mark.
You are looking for something contained in straight quotation marks not containing a quotation mark, so the best regex is "([^"]*?)". Replace it with ``\1''. In Perl this can be simplified to s/"([^"]*?)"/``\1''/g. I would be very careful with this approach, it only works if all opening quotation marks have matching closing ones, for example in "one" two "three" four. But it will fail in "one" t"wo "three" four producing ``one'' t``wo ''three".

RegEx Expression to find strings with quotation marks and a backslash

I am using a program that pastes what is in the clipboard in a modified format according to what I specify.
I would like for it to paste paths (i.e. "C:\folder\My File") without the pair of double quotes.
This, which isn't using RegEx works: Find " (I simply enter than in one line) and replace with nothing. I enter nothing in the second field. I leave it blank.
Now, though that works, it will remove double quotes in this scenario: Bob said "What are you doing?"
I would like the program to remove the quotes only if the the words enclosed in the double quotes have a backslash.
So, once again, just to make sure I am clear, I need the following:
1) RegEx Expression to find strings that have both double quotes and a backslash within those set of quotes.
2) A RegEx Expression that says: replace the backslashes with backslashes (i.e. leave them there).
Thank you for the fast response. This program has two fields. One for what to find and the other for what to replace. So, what would go in the 2nd field?
The program came with the Remove HTML entry, which has
<[^>]*> in the match pattern
and nothing (it's blank) in the Replacement field.
You didn't say which language you use, here's an example in Javascript:
> s = 'say "hello" and replace "C:\\folder\\My File" thanks'
"say "hello" and replace "C:\folder\My File" thanks"
> s.replace(/"([^"\\]*\\[^"]*)"/g, "$1")
"say "hello" and replace C:\folder\My File thanks"
This should work in .NET:
^".*?\\.*?"$

Regex for code formatting

I would like to add line feed after semi-comas in my text.
Something like replace(";",";\n\r")
But i need to exclude the semi-comas inside double quotes, how can i do this with regex?
In case of quotes i want this replacement:
var="Hello;World";
var="Hello;World";\r\n
and not this:
var="Hello;World";
var="Hello;\r\nWorld";\r\n
Thnak you!
You could do something like:
s/;(?=[^"\n]*(?:"[^"\n]*"[^"\n]*)*$)/;\n/gm; # perl synax
If there are no escaped quotes in the strings, and the strings do not span multiple lines.
That is replace:
;(?=[^"\n]*(?:"[^"\n]*"[^"\n]*)*(?m:$))
with
;\n