GVKun编程网logo

java中的REGEX用于提取字符串中连续的重复字符(java中的regex用于提取字符串中连续的重复字符吗)

7

在本文中,我们将为您详细介绍java中的REGEX用于提取字符串中连续的重复字符的相关知识,并且为您解答关于java中的regex用于提取字符串中连续的重复字符吗的疑问,此外,我们还会提供一些关于c#

在本文中,我们将为您详细介绍java中的REGEX用于提取字符串中连续的重复字符的相关知识,并且为您解答关于java中的regex用于提取字符串中连续的重复字符吗的疑问,此外,我们还会提供一些关于c# – 如何删除字符串中的重复字符、java 如何提取字符串中的指定字符、JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项、javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”的有用信息。

本文目录一览:

java中的REGEX用于提取字符串中连续的重复字符(java中的regex用于提取字符串中连续的重复字符吗)

java中的REGEX用于提取字符串中连续的重复字符(java中的regex用于提取字符串中连续的重复字符吗)

如何解决java中的REGEX用于提取字符串中连续的重复字符?

问题:在字符串中打印个字符连续重复两次(不能更多).

示例

1)"aaabbaa" : b 和 a
2)"aabbaa" : a and b and a
3)"阿爸": b

我尝试过的代码

String str = "aabbbbcccd";
模式 p = Pattern.compile("(\w){2}");
匹配器 m = p.matcher(str);
while(m.find())
{
System.out.println(m.group(1));
}

输出
a
b
b
c
d
虽然,所需的输出是
一个

后记
由于我最近开始使用正则表达式,如果回答者能解释一下,我将不胜感激
简单使用的正则表达式(尤其是量词和组)。

解决方法

这个问题没有单一的正则表达式解决方案,因为您需要一个带有内部反向引用的lookbehind,而Java正则表达式引擎不支持。

您可以做的是获取所有 (\w)\1+ 匹配项,然后使用常用字符串方法检查它们的长度:

String s = "aaabbaa";
Pattern pattern = Pattern.compile("(\\w)\\1+");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
    if (matcher.group().length() == 2) System.out.println(matcher.group(1)); 
} 

(参见 Java demo)或者您可以匹配 3 次或更多重复或仅重复 2 次,并且仅在第 2 组匹配时才抓取匹配:

String s = "aaabbaa";
Pattern pattern = Pattern.compile("(\\w)\\1{2,}|(\\w)\\2");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
    if (matcher.group(2) != null)
        System.out.println(matcher.group(2)); 
} 

见this Java demo。 正则表达式详情

  • (\w)\1{2,} - 一个单词 char 和紧跟其后的两个或多个相同字符
  • | - 或
  • (\w)\2 - 一个字符字符和紧跟其后的相同字符。

c# – 如何删除字符串中的重复字符

c# – 如何删除字符串中的重复字符

我有一个网站允许用户评论照片.
当然,用户会发表如下评论:

‘OMGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG!!!!!!!!!!!!!!!’

要么

‘YOU SUCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKK’

你懂了.

基本上,我想通过删除至少大部分超重复字符来缩短这些评论.
我确定有一种方法可以使用Regex …,但是不能弄清楚.

有任何想法吗?

解决方法

请记住,英语使用双字母通常你可能不想盲目地消除它们.这是一个正则表达式,将摆脱任何超越双重的东西.
Regex r = new Regex("(.)(?<=\\1\\1\\1)",RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);

var x = r.Replace("YOU SUCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKK",String.Empty);
// x = "YOU SUCCKK"

var y = r.Replace("OMGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG!!!!!!!!!!!!!!!",String.Empty);
// y = "OMGG!!"

java 如何提取字符串中的指定字符

java 如何提取字符串中的指定字符

【直播预告】程序员逆袭 CEO 分几步?

您可以使用 Java 中的字符串处理方法来提取字符串中的指定字符。以下是一种常见的方法:
1. 使用 String 类的 charAt () 方法,该方法可以获取指定位置上的字符。例如,如果要提取字符串中的第一个字符,可以使用以下代码:
```java
String str = "Hello World";
char firstChar = str.charAt(0);
System.out.println (firstChar); // 输出:H
```
2. 使用 String 类的 substring () 方法,该方法可以提取指定范围内的字符串。例如,如果要提取字符串中的前三个字符,可以使用以下代码:
```java
String str = "Hello World";
String subStr = str.substring(0, 3);
System.out.println (subStr); // 输出:Hel
```
3. 使用正则表达式来提取指定字符。可以使用 String 类的 matches () 方法结合正则表达式来判断字符串中是否包含指定字符,然后再进行提取。例如,如果要提取字符串中的所有数字,可以使用以下代码:
```java
String str = "I have 123 apples";
String digits = str.replaceAll ("\\D", ""); // 使用正则表达式去除非数字字符
System.out.println (digits); // 输出:123
```
请根据您的具体需求选择适合的方法进行提取。

JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项

JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项

我正在尝试解析以下类型的字符串:

[key:"val" key2:"val2"]

里面有任意键:“ val”对。我想获取键名和值。对于那些好奇的人,我试图解析任务战士的数据库格式。

这是我的测试字符串:

[description:"aoeu" uuid:"123sth"]

这是要强调的是,除了空格,冒号周围没有空格而且值始终用双引号引起来,键或值中的任何内容都可以位于键或值中。

在节点中,这是我的输出:

[deuteronomy][gatlin][~]$ node> var re = /^\[(?:(.+?):"(.+?)"\s*)+\]$/g> re.exec(''[description:"aoeu" uuid:"123sth"]'');[ ''[description:"aoeu" uuid:"123sth"]'',  ''uuid'',  ''123sth'',  index: 0,  input: ''[description:"aoeu" uuid:"123sth"]'' ]

而且description:"aoeu"也符合这种模式。如何找回所有比赛?

答案1

小编典典

继续re.exec(s)循环调用以获取所有匹配项:

var re = /\s*([^[:]+):\"([^"]+)"/g;var s = ''[description:"aoeu" uuid:"123sth"]'';var m;do {    m = re.exec(s);    if (m) {        console.log(m[1], m[2]);    }} while (m);

javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”

javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”

`<html>
<head>
  <title>DailyHoroscope.com</title>
  <Meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    {if $contact['timezone']} 
     {assign var=local_tz value=$contact['timezone']} 
    {else} 
     {assign var=local_tz value='America/New_York'} 
    {/if} 
    {assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"}
</head>
<body>
</body>
</html>`

在这段代码中,我需要在{}中获得子串.
我正在使用这个RegEx

/\{([^}]*)\}/mig

它适用于那些只包含一个{和}的子串的类型.喜欢

{if $contact['timezone']}

但是这个字符串的含义—>

{assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"}

我期待整个字符串作为结果,但它返回我

{assign var=tracking_params value="utm_medium={$medium},{$source} and {$campaign}

这是正确的,因为我的正则表达式在获得第一个’}后结束;有没有办法得到使用regEx包含相同数量的'{‘和’}’的字符串?什么是RegEx?

解决方法

如果您只有1级嵌套花括号,则可以使用

\{((?:[^{}]*\{[^{}]*\})*[^}]*)\}

见demo

火柴:

if $contact['timezone']
assign var=local_tz value=$contact['timezone']
else
assign var=local_tz value='America/New_York'
/if
assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"

关于java中的REGEX用于提取字符串中连续的重复字符java中的regex用于提取字符串中连续的重复字符吗的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于c# – 如何删除字符串中的重复字符、java 如何提取字符串中的指定字符、JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项、javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”的相关信息,请在本站寻找。

本文标签: