-1

我想从方括号之间提取文本,我正在使用[(.*?)],但它不能完全工作。

4 月 17 日 13:01:34 10.11.26.83 2012-04-17 00:30:52.222 -0700 ABCD XYZ ALER SOME_TEXT 99.99.182.1 49923 99.99.83.74 80 阻止策略全局拒绝无 [ type="SOME TEXT" pattern=" some-random-pattern" token="/function()" ] GET 99.99.83.74/index.html/function() HTTP "-" "Wget/1.12 (linux-gnu)" 99.99.182.1 49923 "-" "- "

我想提取粗体文本。执行此操作的正则表达式是什么?

4

2 回答 2

1

@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)([^\]\[]+)\]

为了在这个主题中建立更好的立足点,请访问这里

于 2012-04-17T10:39:13.480 回答
0

试试这个:

\[[^\]]+\]

[^\]]是“除 ] 以外的任何字符”的字符类

于 2012-04-17T09:54:35.590 回答