【问题标题】:Regex capture a word under specific conditions [duplicate]正则表达式在特定条件下捕获一个单词[重复]
【发布时间】:2020-06-14 11:49:28
【问题描述】:

您好,我还有一个正则表达式问题..

我有以下文字

Liquor
Liquor-Aussehen klar entf. entf. entf. entf. entf.
+
Leukozyten im Liquor < 5 /µl 6 entf. entf. entf. entf. entf.
Erythrozyten im Liquor 0 /µl 1 entf. entf. entf. entf. entf.
Mononukleäre Zellen i.L. - 100 % 0 entf. entf. entf. entf. entf.
Polymorphkernige Zell i. 0 % + 100 entf. entf. entf. entf. entf.
+ + - -
Glucose im Liquor 40 - 70 mg/dl 71 80 66 26 26 66
Lactat im Liquor < 2.1 mmol/l 1.5 1.6 1.7 ++ 5.1 ++ 5.1 1.7
Gesamt-Eiweiß im Liquor mg/dl entf. entf. entf. entf. entf. entf.
IgA im Liquor < 5 mg/l 3.20 4.01 ++ 17.00 + 10.00 + 10.00 ++ 17.00
IgG im Liquor < 34 mg/l + 53.00 + 57.60 + 97.00 + 65.00 + 65.00 + 97.00
IgM im Liquor < 1.34 mg/l + 1.40 + 1.82 ++ 8.00 ++ 4.50 ++ 4.50 ++ 8.00
Albumin im Liquor < 350 mg/l + 460.0 + 441.0 + 980.0 + 720.0 + 720.0 + 980.0

第一个 Liquor 是文件的开头。我需要找到这个。 但是,如果我只寻找“酒”,则正则表达式将匹配 Glucose im Liquor f.e 中的那些。也一样。。

我构建了以下正则表达式,因为我认为这种消极的前瞻性会做的事情,但是

Liquor(?!-\s?[a-zA-Z<>+-0-9]?)

仍然匹配其他的.. 我怎样才能排除不独立的酒。 应匹配可以后跟数字、字母或低于或高于符号的酒。..

有什么解决办法吗?

【问题讨论】:

  • 使用结束字符串 ancor $ 可能吗?这样就够了吗? > ^Liquor$
  • 请分享您的相关代码,看看您如何处理字符串。想要达到什么目的?我怀疑你想提取一个已知的单词。
  • 你只想要头部/标题还是单独排成一行的“酒”字?
  • 是的,我只想要独立的单词“Liquor”,但文本也可以看起来像我在其他评论中显示的那样:“\nLiquor\nLiquor-Aussehen klar entf.entf.entf.entf .entf.\n+\nLeukozyten im Liquor[...]"

标签: c# regex match word


【解决方案1】:

如果你只想要Liquor这一行,那么匹配^Liquor$

或者,如果您想要以Liquor 结尾的行,请使用Liquor$

顺便说一句,在你所有其他带有 Liquor 的行中(除了第二行),这个词后面跟着一个空格(这就是为什么负前瞻每次都返回 true :- 不能匹配空格)

【讨论】:

  • 是的,它适用于上面的文本,但在进一步的测试和其他文本中,我发现当它看起来像这样“\nLiquor\nLiquor-Aussehen klar entf.entf.entf. entf.entf.\n+\nLeukozyten im Liquor[...]" 我需要第一种酒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2018-07-11
  • 2023-03-19
  • 1970-01-01
  • 2015-06-14
  • 2020-06-09
相关资源
最近更新 更多