小编Lou*_*uis的帖子

与正则表达式部分匹配

当正则表达式需要特定数量的该字符时,有没有办法确定单个字符是否有效?

我有一个 WPF 自定义键盘,想根据正则表达式调整每个键的可用性。当表达式相当简单并且不期望字符的特定顺序或特定长度来满足模式时,这将很有效。

但是,当模式变得更加复杂和具体时,针对它测试单个字符将始终失败。

例如,给定正则表达式 [a-zA-Z0-9]{4}

这些值会成功:

  • A B C D
  • A B C D
  • 1234
  • A23e

该表达式显然只需要字母数字字符。我想要一种给定表达式将拒绝特殊字符的方法,比如“%”,但接受“a”,因为“a”在[a-zA-Z0-9]. 唯一的问题是不会满足的特定长度。

我目前正在使用Regex.IsMatch。我想我正在寻找一种部分匹配测试方法。

c# regex wpf character special-characters

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

如何使用正则表达式强制执行单行?

我需要一个Regex对象来拒绝跨多行传播的任何字符串。

我希望这能成功:

"This is my string"
Run Code Online (Sandbox Code Playgroud)

这会失败:

"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
Run Code Online (Sandbox Code Playgroud)

我一直在阅读MSDN 上的文档并假设以下内容应该有效:

  • 正则表达式模式:"^.+"
  • 使用此模式初始化的正则表达式RegexOptions.Singleline对象,没有任何选项(no或RegexOptions.Multiline)。

使用多个行字符串进行测试时,Regex.IsMatch方法始终返回 true。我相信这是因为当字符串中至少有一部分与模式匹配时,IsMatch将返回 true。

就我而言,新行之前的任何内容都会导致匹配。唯一失败的方法是字符串只有换行符而没有其他字符。

是否有正则表达式验证方法将字符串视为一个整体,而不是将其拆分为匹配的子字符串?我怀疑我可能需要更复杂的字符串模式来实现我的目标。

c# regex string multiline

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

如何在WPF中提供字符串文字值作为绑定

编辑:

我之前的问题也提到了命令,但正如下面的评论所指出的那样,它是不必要的并且增加了噪音.


这更像是一个XAML语法问题,所以它可能是微不足道的.我想知道如何将字符串文字作为WPF中绑定的值传递.

如果已经从XAML中的上下文中获知了该值,那么它的值是否可以直接分配给绑定,而不是使用路径和其他方法?如果是这样,在这种情况下语法是什么?

<MultiBinding.Bindings>
    <!-- First binding, a textbox  -->
    <Binding  RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type TextBox}}"/>
    <!-- Second binding, I want to pass a string as is, for instance, "Description" -->
    <!-- The proper syntax for the line below is what I am after -->
    <Binding Value="Description"/>
</MultiBinding.Bindings>
Run Code Online (Sandbox Code Playgroud)

string parameters wpf xaml command

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