我没有使用正则表达式的经验,虽然我应该花一些时间训练它们,但我需要一个简单的表达式。
我想在给定的字符串中找到P * .txt的匹配项(意思是以P开头的任何内容,后跟任何内容,以“.txt”结尾。
例如:
string myString = "P671221.txt";
Regex reg = new Regex("P*.txt"); //<--- what goes here?
if (reg.IsMatch(myString)
{
Console.WriteLine("Match!"));
}
此示例不起作用,因为它将返回“.txt”或“x.txt”等匹配。我该怎么做?
答案 0 :(得分:1)
myString.StartsWith("P") && myString.EndsWith(".txt")
编辑:删除我的正则表达式
答案 1 :(得分:1)
字符串开头+( p )+ 任意字符 + .txt +字符串结尾
^(?i:p).*\.txt$
更精确的替代方案是:
字符串开始+( p )+ [特定字符] + .txt +字符串结束
(目前指定的是:&#34; a-z&#34;,&#34; 0-9&#34;,空格和&amp;下划线)
^(?i:p)(?i:[a-z0-9 _])*\.txt$
原始解决方案
(包括引号,因为我忽略了引号是代码的一部分但没有 字符串)
前面的引号+( p )+ 任何字符 + .txt +以下引号
(?<=")(?i:p).*\.txt(?=")
<强> Live Demo 强>
答案 2 :(得分:0)
获取以P&amp; P开头的文件的最佳选择以.txt 结尾使用正则表达式:
...
var property = (PropertyInfo) ((MemberExpression)member.Body).Member;
var propertyName = property.Name;
var value = property.GetValue(obj, new object[0]);
...
答案 3 :(得分:0)
P[\d]+\.txt
这会奏效。如果您有固定的位数,那么您可以像P[\d]{6}\.txt
那样进行操作。只需将6替换为您想要的修正号码即可。
如果起始字母P
和广告.txt
之间的值可以是字母数字,请使用P[\w]+\.txt
答案 4 :(得分:0)
{{1}}
答案 5 :(得分:0)
这应符合您提出的要求。
c#
[PP]。*。(?: TXT)+ $