我想从方括号中提取文本,我正在使用[(.*?)]
,但它不能完全正常工作。
Apr 17 13:01:34 10.11.26.83 2012-04-17 00:30:52.222 -0700 barracuda WF ALER OS_CMD_INJECTION_IN_URL 99.99.182.1 49923 99.99.83.74 80 security-policy GLOBAL DENY NONE [ type =“ os-command-injection“pattern =”perl-language-function-substrings“token =”/ fork()“] GET 99.99.83.74/index.html/fork()HTTP” - “”Wget / 1.12 (linux-gnu)“99.99.182.1 49923” - “” - “
我想提取粗体文本。这样做的正则表达式是什么?
答案 0 :(得分:2)
@rprakash:
模式剖析
<!--
\[(.*?)\]
Match the character “[” literally «\[»
Match the regular expression below and capture its match into backreference number 1 «(.*?)»
Match any single character that is not a line break character «.*?»
Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character “]” literally «\]»
-->
使用 REGEX 时,使用否定字符类代替点运算符始终是安全的。
波希米亚人可能会\[[^\]]+\]
说,或者使用\[(?#if grouping required)([^\]\[]+)\]
可能更安全。
为了在这个主题中建立更好的立足点visit here。
答案 1 :(得分:0)
试试这个:
\[[^\]]+\]
[^\]]
是“除a之外的任何字符”