【问题标题】:Regex.Split create new lineRegex.Split 创建新行
【发布时间】:2013-04-25 11:48:41
【问题描述】:

基本上是在导入或添加数据时尝试在列表框中创建一个新行。例如,地址需要换行

2
example road
example 

此时它以一行而不是三行显示项目。

private void txtPhrase_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (string s in Regex.Split("", "\r\n"))
        txtPhrase.Items.Add(s);
}

不确定将什么作为字符串输入?因为有不同的输入。

【问题讨论】:

  • 您的数据来自哪里?
  • 用户输入的数据和一个 SQL 数据库
  • 所以你的输入是一个字符串,你想分成多个?你能提供示例数据吗?
  • 几乎是的,所以地址将是示例数据?如果有人输入如下数据:AddressLine1 AddressLine2 AddressLine3 Postcode
  • @JamieHennerley 您如何知道 AddressLine1 的结束位置和 AddressLine2 的开始位置?规则是什么?

标签: c# regex winforms newline


【解决方案1】:

列表框不支持将单个列表项拆分为多行的功能。您可能需要考虑在表单上使用单独的项目或不同的控件。

【讨论】:

    【解决方案2】:

    只是一个想法,不知道它是否有效,但我使用 - Environment.NewLine -

    String.Format(" after this text a new line {0}",Environment.NewLine)
    

    【讨论】:

      【解决方案3】:

      输入是 Regex 正在接收的字符串的名称。它会是这样的:

      string[] values = new string[] { "2", "example road", "example" };
      
      foreach (string stringvalue in values)
      {
       string[] ResultRegex= Regex.Split(stringvalue, "pattern");
      }
      

      顺便说一句,我认为你不需要正则表达式,你需要使用 String.Split()。 例如:

      string[] splitedValues = values.Split('\r\n');
      

      【讨论】:

      • 尽管看到用户输入不同的值,但每次输入都会有所不同?这不会有什么不同吗?
      • 我认为你不需要正则表达式。你需要 String.Split()
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多