我試圖找到子字符串EnemyType('XXXX')
的所有實例,其中XXXX是一個任意字符串,並且EnemyType('XXXX')
的instannce可以出現多次。尋找字符串中的模式如何?
現在我在C#中使用index of
/substring
函數的財團,但想知道是否有更乾淨的方法來實現它?
我試圖找到子字符串EnemyType('XXXX')
的所有實例,其中XXXX是一個任意字符串,並且EnemyType('XXXX')
的instannce可以出現多次。尋找字符串中的模式如何?
現在我在C#中使用index of
/substring
函數的財團,但想知道是否有更乾淨的方法來實現它?
使用正則表達式。例如:
using System.Text.RegularExpressions;
var inputString = " EnemyType('1234')abcdeEnemyType('5678')xyz";
var regex = new Regex(@"EnemyType\('\d{4}'\)");
var matches = regex.Matches(inputString);
foreach (Match i in matches)
{
Console.WriteLine(i.Value);
}
它將打印:
EnemyType('1234')
EnemyType('5678')
要匹配的模式是@"EnemyType\('\d{4}'\)"
,其中\d{4}
裝置4的數字字符(0-9)
。括號用反斜槓轉義。
編輯:由於您只需要引號內的字符串,而不是整個字符串,您可以使用命名組代替。
var inputString = " EnemyType('1234')abcdeEnemyType('5678')xyz";
var regex = new Regex(@"EnemyType\('(?<id>[^']+)'\)");
var matches = regex.Matches(inputString);
foreach (Match i in matches)
{
Console.WriteLine(i.Groups["id"].Value);
}
現在它打印:
1234
5678
正則表達式是對於解析字符串一個非常好的工具。如果你經常分析字符串,正則表達式可以讓生活變得更容易。
Enemytype('XXXXXX')的情況如何(即字符串中有4個以上字符) – tweetypi
'\ d {n}'其中n可以是任意數字。這意味着它應該至少匹配n個數字字符。如果你不知道有多少個,你可以使用'\ d +'代替,至少意味着一個數字字符。 – kurakura88
在[鏈接](http://www.regular-expressions.info/repeat.html)中的「限制重複」部分可以看到更多內容。 – jetstream96
你想用'EnemyType('XXXX')'字符串來做什麼? – DestinatioN
如果可能,請包含當前代碼,並且當前代碼有什麼問題 –
@DestinationN我只是想知道XXXXXXX在EnemyType內部用於文件解析的目的。 – tweetypi