相关疑难解决方法(0)

RegEx:如果某个字符在引号内,则不匹配

披露:我已经在这里多次阅读了这个答案,我知道比使用正则表达式解析HTML更好.这个问题只是为了扩展我的正则表达式的知识.

说我有这个字符串:

some text <tag link="fo>o"> other text
Run Code Online (Sandbox Code Playgroud)

我想匹配整个标签,但如果我使用<[^>]+>它只匹配<tag link="fo>.

如何确保>可以忽略引号内部.

我可以用一个while循环来编写一个解析器来执行此操作,但我想知道如何使用regex.

regex quotes ignore escaping

7
推荐指数
1
解决办法
5309
查看次数

正则表达式,忽略模式,如果它在引号中

编写一个非常简单的脚本解析器作为学校项目的一部分,虽然它不是必需的但我很好奇是否可以只使用正则表达式来完成.

语法类似于ASP,其中脚本以<%开头,以%>结尾.

它只支持一个命令"pr",它与echo或Response.Write相同.

现在我正在使用这个正则表达式来查找脚本块:

(<%\s*([\s\S]*?)\s*%>)
Run Code Online (Sandbox Code Playgroud)

但如果我有这样的命令:

<% pr "%>"; %>
Run Code Online (Sandbox Code Playgroud)

......它显然只匹配:

<% pr "%>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用纯正则表达式来忽略引号内的结束标记?我主要担心的是它可能匹配引号之间的标签,但实际上它们在它们之外,如果这有意义的话.例如...

<% pr "hello world"; %> "
Run Code Online (Sandbox Code Playgroud)

从技术上讲,结束标记被引号包围,但它不在"开放"然后"关闭"引用内,而是相反.

如果这可能是正则表达式非常整洁,否则我怀疑,如果我想支持这个功能,我将不得不手动迭代传入的文本并自己解析块,这也没什么大不了的.

谢谢!

regex scripting parsing

6
推荐指数
1
解决办法
7033
查看次数

标签 统计

regex ×2

escaping ×1

ignore ×1

parsing ×1

quotes ×1

scripting ×1