标签: regex-group

如何在同一行中分隔多个正则表达式匹配

我正在尝试使用正则表达式来解析以某种(key###value)格式编写的值。该值始终是一个数字。不管怎样,我认为用 python 来做是最简单的,所以这里是我正在尝试的一些代码:

import re

line = "(text 1###123)(text 2###345)";

matchObj = re.match( r'\(.*###[0-9]+\)', line)

if matchObj:
   print matchObj.group(0) # produces (text 1###123)(text 2###345)
   # print matchObj.group(1) # gives an error
else:
   print "No match!!"
Run Code Online (Sandbox Code Playgroud)

尽管有两个不同的对象与我编写的正则表达式匹配,但 python 将它们作为单个字符串返回给我——这不是我想要的。我怎样才能解决这个问题?

事实上,我真正想要的是将字符串分成类似["text 1", "123", "text 2", "345]. 因此,如果有人有一个简单的方法来实现这一点,我也将不胜感激。

python regex regex-group

2
推荐指数
1
解决办法
7282
查看次数

使用正则表达式从私钥获取值

我收到一个像这样的私钥:-

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

我想要第一行的最后一个 ----- 和最后一行的第一个 ----- 之后的数据,以便匹配组的数据如下所示:-

MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的,但绝对没有得到我想要的

(?=[-]*(?=[A-Z]*(?=[-])))(.*)(?=[-]*(?=[A-Z]*(?=[-])))
Run Code Online (Sandbox Code Playgroud)

你能帮我纠正一下这个问题吗?

regex regex-negation regex-group regex-lookarounds

2
推荐指数
1
解决办法
3466
查看次数

2
推荐指数
1
解决办法
3156
查看次数

Perl:如何以结构化的方式获取多个正则表达式?

我试图在任意字符串中获取一组模式的所有出现,就像这样:

my $STRING = "I have a blue cat. That cat is nice, but also quite old. She is always bored.";

foreach (my @STOPS = $STRING =~ m/(?<FINAL_WORD>\w+)\.\s*(?<FIRST_WORD>\w+)/g ) {

  print Dumper \%+, \@STOPS;
}
Run Code Online (Sandbox Code Playgroud)

但结果不是我所期望的,我也不完全明白为什么:

$VAR1 = {
          'FINAL_WORD' => 'old',
          'FIRST_WORD' => 'She'
        };
$VAR2 = [
          'cat',
          'That',
          'old',
          'She'
        ];
$VAR1 = {
          'FINAL_WORD' => 'old',
          'FIRST_WORD' => 'She'
        };
$VAR2 = [
          'cat',
          'That',
          'old',
          'She'
        ];
$VAR1 = {
          'FINAL_WORD' => 'old',
          'FIRST_WORD' => …
Run Code Online (Sandbox Code Playgroud)

regex perl regex-group

2
推荐指数
1
解决办法
86
查看次数

用于字符串中可选等号分隔符的 Powershell 正则表达式

在下面的测试字符串中,键和值之间可以有一个等号一个或多个空格字符。如果存在等号,则它可以可选地前面和/或后面有零个或多个空格字符。

$MyTstString = "KeyX =  ValueY"
$RegExString = "^(?<Key>.+)(?<Sep>\s*=\s*)(?<Value>.*)$"
$MyTstString -match $RegExString | Foreach {$Matches}
Run Code Online (Sandbox Code Playgroud)

什么正则表达式会为我做到这一点?

将 RegExString 更改为

$RegExString = "^(?<Key>.+)(?<Sep>\s*=\s*|\s+)(?<Value>.*)$"
Run Code Online (Sandbox Code Playgroud)

当 TestString 为“KeyA = ValueB”时,会导致 Key 和 Sep 不正确

powershell regex-group

2
推荐指数
1
解决办法
54
查看次数

如何在R中以3个为一组粘贴字符

这是一个 DNA 字符串,我想将其拆分,然后以 3 组为一组进行组合

dna=c("TACACGATGACAGTCTTGACGGGTTCTCCTACT")
dna.sg = unlist(strsplit(dna, ""))
Run Code Online (Sandbox Code Playgroud)

给予

 [1] "T" "A" "C" "A" "C" "G" "A" "T" "G" "A" "C" "A" "G" "T" "C" "T" "T" "G" "A" "C" "G" "G" "G" "T" "T" "C" "T" "C" "C" "T" "A" "C" "T"
Run Code Online (Sandbox Code Playgroud)

但我想有

"TAC" "ACG" [...]
Run Code Online (Sandbox Code Playgroud)

string r regex-group

2
推荐指数
1
解决办法
454
查看次数

正则表达式匹配2或没有?

我有这个正则表达式来确定该行是否包含两个下划线:

\s*_{2}(\w+)
Run Code Online (Sandbox Code Playgroud)

任何空格,两个下划线然后一个字.事实证明,我也需要知道没有下划线,所以我有:

\s*(\w+)
Run Code Online (Sandbox Code Playgroud)

可选空格后跟一个单词.然后我得到了第1组,这是我的话.到现在为止还挺好.

问题是当使用两个下划线时采取的操作,当没有使用下划线时几乎与代码相同(除了我举起一个标记)

if( s =~ uderscore ) { 
   takeGroup( 1 )
   yada yada 
   flag = true
} else if( s =~ noUnderscore { 
  takeGroup( 1 ) 
  yada yada 
   flag = false 
}
Run Code Online (Sandbox Code Playgroud)

我认为必须有一个更好的方法,而不是重复整个正则表达式并使用和不使用测试.

java regex regex-group

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

正则表达式匹配相等的字符串

是否可以仅使用正则表达式(无附加代码!)来匹配第n个匹配?例如:

"CAR" - "火车" - "船" - "自行车"

现在我只想匹配BOAT,匹配的正则表达式将是"[AZ] +",但是这也匹配第一个,第二个和第四个.

有没有人有这个纯正的正则表达式解决方案?我需要这个,因为我无法更改使用正则表达式的代码,但我可以提供正则表达式.

最好的问候,罗宾

java regex regex-group

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

RegEx用于在名字/姓氏之间添加逗号和空格

我有一个姓氏和名字同时出现的名字列表:

BorisovaSvetlana A.; KimHak Joong; PuXiaotao; LiuHung-wen*
Run Code Online (Sandbox Code Playgroud)

我想在姓和名之间添加一个逗号和空格,以使输出为:

Borisova, Svetlana A.; Kim, Hak Joong; Pu, Xiaotao; Liu, Hung-wen*
Run Code Online (Sandbox Code Playgroud)

我在KNIME中使用一个String Manipulation节点,并且我想regexReplace($col1$, ,"")会使用它,也许使用[az]和[AZ]进行某种先行查找以直接在大写字母后写一个小写字母,但是我对regex不熟悉到目前为止,这就是我所拥有的。

我该如何解决这个问题?

regex string regex-group knime regex-greedy

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

RegEx用于删除字符串中的空格

试图制作一个非常简单的HTML缩小器,仅消除标记之间的空白吗?

我认为最好的方法是使用JavaScript正则表达式?但永远无法找出正确的方法。

<p>leave white spaces</p> <p>leave white spaces</p>
Run Code Online (Sandbox Code Playgroud)

缩小后:

 <p>leave white space</p><p>leave white space</p>
Run Code Online (Sandbox Code Playgroud)

试图瞄准>这里的空间<

javascript regex dom regex-group regex-lookarounds

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